package conexao;


import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import modelo.Cliente;

public class ClienteDao {
 
    private Conexao conexao;
    private Statement stmt;
    private boolean sucesso = false;
	public ClienteDao() {
        conexao = new Conexao();
        try {
            stmt = (Statement) conexao.getConn().createStatement();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }
 
    public boolean inserir(Cliente cliente) {
        try {
            stmt.execute("INSERT INTO cliente (" +
            		"id_cliente,nome_contato,cnpj,razao_social,nome_fantasia,setor_contato,telefone,celular, ramo) VALUES ('" + cliente.getIdCliente() + "','" + cliente.getNomeContato() 
            		+ "','" + cliente.getCnpj()+ "','" + cliente.getNomeFantasia() + "','" + cliente.getRazaoSocial()
            		+ "','" + cliente.getSetorContato() + "','" + cliente.getTelefone() + "','" + cliente.getCelular()
            		+ "','" + cliente.getRamo() + "')");
            sucesso = true;
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            conexao.fecharConexao();
        }
 
        return sucesso;
    }
    public boolean alterar(Cliente cliente) {
        try {
            stmt.execute("UPDATE cliente SET nome = '" + cliente.getNomeContato() + "', cnpj = '" 
        + cliente.getCnpj() + "'razao_social = '" + cliente.getRazaoSocial() + "',nome_fantasia= '" + cliente.getNomeFantasia() + 
        "',setor_contato = '" + cliente.getSetorContato() + "',telefone = '" + cliente.getTelefone() + "',celular = '" + cliente.getCelular()
        + "',ramo= '" + cliente.getRamo() + "', WHERE id_cliente = '" + cliente.getIdCliente() + "'");
            sucesso = true;
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            conexao.fecharConexao();
        }
 
        return sucesso;
    }
 
    public boolean remover(Cliente cliente) {
        try {
            stmt.execute("DELETE FROM cliente WHERE id_cliente = '" + cliente.getIdCliente() + "'");
            sucesso = true;
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            conexao.fecharConexao();
        }
 
        return sucesso;
    }
 
    
    public List<Cliente> listar() {
        List<Cliente> clientes = new ArrayList<Cliente>();
        try {
            ResultSet rs = stmt.executeQuery("SELECT * FROM cliente ");
            while (rs.next()) {
                Cliente cliente = new Cliente();
                cliente.setIdCliente(rs.getInt("id_cliente"));
                cliente.setNomeContato(rs.getString("nome_contato"));
                cliente.setCnpj(rs.getInt("cnpj"));
                cliente.setRazaoSocial(rs.getString("razao_social"));
                cliente.setNomeFantasia(rs.getString("nome_fantasia"));
                cliente.setSetorContato(rs.getString("setor_contato"));
                cliente.setTelefone(rs.getInt("telefone"));
                cliente.setCelular(rs.getInt("celular"));
                cliente.setRamo(rs.getInt("ramo"));
 
                clientes.add(cliente);
            }
 
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            conexao.fecharConexao();
        }
 
        return clientes;
    }
}